[INFO] cloning repository https://github.com/wumingshiali/catshare
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wumingshiali/catshare" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwumingshiali%2Fcatshare", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwumingshiali%2Fcatshare'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] afef64cbd59683cbf390899498efc3b4334e0a77
[INFO] checking wumingshiali/catshare against try#1779a8680dcd39c56ed600627cf6742ef07ed78c for pr-149045
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwumingshiali%2Fcatshare" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/wumingshiali/catshare
[INFO] finished tweaking git repo https://github.com/wumingshiali/catshare
[INFO] tweaked toml for git repo https://github.com/wumingshiali/catshare written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/wumingshiali/catshare on toolchain 1779a8680dcd39c56ed600627cf6742ef07ed78c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1779a8680dcd39c56ed600627cf6742ef07ed78c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/wumingshiali/catshare already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1779a8680dcd39c56ed600627cf6742ef07ed78c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1779a8680dcd39c56ed600627cf6742ef07ed78c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f8755c0489d2205b6466bdd2cd07511a4e2a0a3df1836b036795d8b2a440a423
[INFO] running `Command { std: "docker" "start" "-a" "f8755c0489d2205b6466bdd2cd07511a4e2a0a3df1836b036795d8b2a440a423", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f8755c0489d2205b6466bdd2cd07511a4e2a0a3df1836b036795d8b2a440a423", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f8755c0489d2205b6466bdd2cd07511a4e2a0a3df1836b036795d8b2a440a423", kill_on_drop: false }`
[INFO] [stdout] f8755c0489d2205b6466bdd2cd07511a4e2a0a3df1836b036795d8b2a440a423
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1779a8680dcd39c56ed600627cf6742ef07ed78c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ef905a70fb749aa224b58c90dd7163cc0bfee859e68740ac574ad728097bb358
[INFO] running `Command { std: "docker" "start" "-a" "ef905a70fb749aa224b58c90dd7163cc0bfee859e68740ac574ad728097bb358", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]     Checking linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]     Checking dlib v0.5.2
[INFO] [stderr]    Compiling wayland-sys v0.31.8
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]    Compiling quick-xml v0.38.4
[INFO] [stderr]    Compiling wayland-client v0.31.12
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]     Checking piper v0.2.4
[INFO] [stderr]     Checking ordered-stream v0.2.0
[INFO] [stderr]     Checking unicode-ident v1.0.23
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]     Checking rustix v0.38.44
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking async-lock v3.4.2
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]    Compiling zmij v1.0.20
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]     Checking anyhow v1.0.101
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking async-executor v1.13.3
[INFO] [stderr]     Checking syn v2.0.114
[INFO] [stderr]     Checking async-fs v2.2.0
[INFO] [stderr]    Compiling winit v0.30.12
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling wayland-scanner v0.31.8
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]    Compiling pathfinder_simd v0.5.5
[INFO] [stderr]    Compiling arc-swap v1.8.1
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]     Checking zune-core v0.4.12
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking zune-jpeg v0.4.21
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling toml_parser v1.0.6+spec-1.1.0
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking nix v0.29.0
[INFO] [stderr]     Checking xdg-home v1.3.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking memmap2 v0.9.9
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]    Compiling toml_edit v0.23.10+spec-1.0.0
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking pxfm v0.1.27
[INFO] [stderr]     Checking avif-serialize v0.8.6
[INFO] [stderr]     Checking uuid v1.20.0
[INFO] [stderr]    Compiling base62 v2.2.3
[INFO] [stderr]    Compiling wayland-backend v0.3.12
[INFO] [stderr]    Compiling pqcrypto-internals v0.2.11
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling freetype-sys v0.20.1
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking globset v0.4.18
[INFO] [stderr]     Checking rgb v0.8.52
[INFO] [stderr]    Compiling normpath v1.5.0
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]     Checking zune-jpeg v0.5.12
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]    Compiling pqcrypto-mldsa v0.1.2
[INFO] [stderr]    Compiling pqcrypto-mlkem v0.1.1
[INFO] [stderr]     Checking ignore v0.4.25
[INFO] [stderr]     Checking png v0.18.0
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]    Compiling proc-macro-crate v3.4.0
[INFO] [stderr]    Compiling rfd v0.15.4
[INFO] [stderr]    Compiling font-kit v0.14.3
[INFO] [stderr]     Checking globwalk v0.8.1
[INFO] [stderr]     Checking pqcrypto-traits v0.3.5
[INFO] [stderr]     Checking pathfinder_geometry v0.5.1
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking dirs-sys v0.4.1
[INFO] [stderr]     Checking socket2 v0.6.2
[INFO] [stderr]     Checking yeslogic-fontconfig-sys v6.0.0
[INFO] [stderr]     Checking pollster v0.4.0
[INFO] [stderr]     Checking float-ord v0.3.2
[INFO] [stderr]     Checking twox-hash v2.1.2
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking dirs v5.0.1
[INFO] [stderr]     Checking sha3 v0.10.8
[INFO] [stderr]     Checking lz4_flex v0.11.5
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]     Checking sys-locale v0.3.2
[INFO] [stderr]     Checking xxhash-rust v0.8.15
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zvariant_utils v2.1.0
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]     Checking async-io v2.6.0
[INFO] [stderr]     Checking tempfile v3.24.0
[INFO] [stderr]     Checking async-signal v0.2.13
[INFO] [stderr]     Checking async-net v2.0.0
[INFO] [stderr]     Checking async-process v2.5.0
[INFO] [stderr]     Checking moxcms v0.7.11
[INFO] [stderr]     Checking glutin_glx_sys v0.6.1
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling zerocopy-derive v0.8.39
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling zvariant_derive v4.2.0
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]     Checking wayland-protocols v0.32.10
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zbus_macros v4.4.0
[INFO] [stderr]     Checking wayland-cursor v0.31.12
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]    Compiling enumn v0.1.14
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking calloop v0.14.3
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking equator v0.4.2
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking aligned-vec v0.6.4
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking v_frame v0.3.9
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]    Compiling derive_builder_core v0.20.2
[INFO] [stderr]     Checking calloop-wayland-source v0.4.1
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]    Compiling fax_derive v0.2.0
[INFO] [stderr]     Checking profiling v1.0.17
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking av1-grain v0.2.5
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]    Compiling rust-i18n v3.1.5
[INFO] [stderr]     Checking fax v0.2.6
[INFO] [stderr]     Checking av-scenechange v0.14.1
[INFO] [stderr]     Checking glutin v0.32.3
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]    Compiling getset v0.1.6
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking rav1e v0.8.1
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling derive_builder_macro v0.20.2
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking derive_builder v0.20.2
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]     Checking zvariant v4.2.0
[INFO] [stderr]    Compiling quick-xml v0.30.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]    Compiling zvariant_utils v3.3.0
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking accesskit v0.16.3
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking emath v0.29.1
[INFO] [stderr]    Compiling zvariant_derive v5.9.2
[INFO] [stderr]     Checking ecolor v0.29.1
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking epaint v0.29.1
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]    Compiling zvariant v5.9.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking accesskit_consumer v0.24.3
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling triomphe v0.1.15
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.10
[INFO] [stderr]     Checking zbus_names v3.0.0
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.10
[INFO] [stderr]     Checking wayland-protocols-misc v0.3.10
[INFO] [stderr]     Checking wayland-protocols-experimental v20250721.0.1
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking zbus_xml v4.0.0
[INFO] [stderr]     Checking zbus v4.4.0
[INFO] [stderr]     Checking zbus_names v4.3.1
[INFO] [stderr]     Checking zbus-lockstep v0.4.4
[INFO] [stderr]     Checking exr v1.74.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking smithay-client-toolkit v0.20.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking egui v0.29.1
[INFO] [stderr]     Checking tiff v0.10.3
[INFO] [stderr]     Checking webbrowser v1.1.0
[INFO] [stderr]    Compiling neli-proc-macros v0.2.2
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking smithay-clipboard v0.7.3
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking neli v0.7.4
[INFO] [stderr]     Checking ravif v0.12.0
[INFO] [stderr]    Compiling zbus-lockstep-macros v0.4.4
[INFO] [stderr]    Compiling rust-i18n-support v3.1.5
[INFO] [stderr]    Compiling zbus_macros v5.13.2
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]    Compiling rust-i18n-macro v3.1.5
[INFO] [stderr]     Checking local-ip-address v0.6.10
[INFO] [stderr]     Checking zbus v5.13.2
[INFO] [stderr]     Checking glutin-winit v0.5.0
[INFO] [stderr]     Checking atspi-common v0.6.0
[INFO] [stderr]     Checking egui_glow v0.29.1
[INFO] [stderr]     Checking atspi-proxies v0.6.0
[INFO] [stderr]     Checking accesskit_atspi_common v0.9.3
[INFO] [stderr]     Checking ashpd v0.11.1
[INFO] [stderr]     Checking atspi-connection v0.6.0
[INFO] [stderr]     Checking atspi v0.22.0
[INFO] [stderr]     Checking accesskit_unix v0.12.3
[INFO] [stderr]     Checking accesskit_winit v0.22.4
[INFO] [stderr]     Checking egui-winit v0.29.1
[INFO] [stderr]     Checking eframe v0.29.1
[INFO] [stderr]     Checking catshare v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::crypto`
[INFO] [stdout]   --> src/network/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::crypto;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `receive_message` and `send_message`
[INFO] [stdout]  --> src/ui/app.rs:6:81
[INFO] [stdout]   |
[INFO] [stdout] 6 |     connect_to_peer, format_bytes, format_duration, format_speed, get_local_ip, receive_message,
[INFO] [stdout]   |                                                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     resolve_id_to_ip, send_message, Message, NetworkInfo, TcpServer, TRANSFER_PORT, send_encrypted_message, receive_encrypted_message,
[INFO] [stdout]   |                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::crypto`
[INFO] [stdout]   --> src/network/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::crypto;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `receive_message` and `send_message`
[INFO] [stdout]  --> src/ui/app.rs:6:81
[INFO] [stdout]   |
[INFO] [stdout] 6 |     connect_to_peer, format_bytes, format_duration, format_speed, get_local_ip, receive_message,
[INFO] [stdout]   |                                                                                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     resolve_id_to_ip, send_message, Message, NetworkInfo, TcpServer, TRANSFER_PORT, send_encrypted_message, receive_encrypted_message,
[INFO] [stdout]   |                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/ui/mod.rs:75:60
[INFO] [stdout]    |
[INFO] [stdout] 75 |     visuals.widgets.noninteractive.fg_stroke = Stroke::new(1.0, colors.border());
[INFO] [stdout]    |                                                            ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/ui/mod.rs:80:54
[INFO] [stdout]    |
[INFO] [stdout] 80 |     visuals.widgets.inactive.fg_stroke = Stroke::new(1.0, colors.border());
[INFO] [stdout]    |                                                      ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/ui/mod.rs:85:53
[INFO] [stdout]    |
[INFO] [stdout] 85 |     visuals.widgets.hovered.fg_stroke = Stroke::new(1.5, colors.accent()); // Use accent for hover
[INFO] [stdout]    |                                                     ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/ui/mod.rs:90:52
[INFO] [stdout]    |
[INFO] [stdout] 90 |     visuals.widgets.active.fg_stroke = Stroke::new(2.0, colors.accent()); // Use accent for active
[INFO] [stdout]    |                                                    ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/ui/mod.rs:95:44
[INFO] [stdout]    |
[INFO] [stdout] 95 |     visuals.selection.stroke = Stroke::new(1.0, colors.text_on_primary());
[INFO] [stdout]    |                                            ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/mod.rs:327:25
[INFO] [stdout]     |
[INFO] [stdout] 327 |             Stroke::new(1.5, stroke_color),
[INFO] [stdout]     |                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/mod.rs:479:39
[INFO] [stdout]     |
[INFO] [stdout] 479 |                     egui::Stroke::new(1.5, Color32::from_rgba_premultiplied(255, 255, 255, 80)),
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/mod.rs:504:35
[INFO] [stdout]     |
[INFO] [stdout] 504 |         .stroke(egui::Stroke::new(1.0, color.linear_multiply(0.3))) // Subtle border
[INFO] [stdout]     |                                   ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/mod.rs:618:25
[INFO] [stdout]     |
[INFO] [stdout] 618 |             Stroke::new(2.0, border_color),
[INFO] [stdout]     |                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/mod.rs:683:56
[INFO] [stdout]     |
[INFO] [stdout] 683 |         .hline(rect.x_range(), rect.top(), Stroke::new(1.0, Colors::BORDER));
[INFO] [stdout]     |                                                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/ui/mod.rs:75:60
[INFO] [stdout]    |
[INFO] [stdout] 75 |     visuals.widgets.noninteractive.fg_stroke = Stroke::new(1.0, colors.border());
[INFO] [stdout]    |                                                            ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout]    = note: `#[warn(float_literal_f32_fallback)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/ui/mod.rs:80:54
[INFO] [stdout]    |
[INFO] [stdout] 80 |     visuals.widgets.inactive.fg_stroke = Stroke::new(1.0, colors.border());
[INFO] [stdout]    |                                                      ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/ui/mod.rs:85:53
[INFO] [stdout]    |
[INFO] [stdout] 85 |     visuals.widgets.hovered.fg_stroke = Stroke::new(1.5, colors.accent()); // Use accent for hover
[INFO] [stdout]    |                                                     ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/ui/mod.rs:90:52
[INFO] [stdout]    |
[INFO] [stdout] 90 |     visuals.widgets.active.fg_stroke = Stroke::new(2.0, colors.accent()); // Use accent for active
[INFO] [stdout]    |                                                    ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]   --> src/ui/mod.rs:95:44
[INFO] [stdout]    |
[INFO] [stdout] 95 |     visuals.selection.stroke = Stroke::new(1.0, colors.text_on_primary());
[INFO] [stdout]    |                                            ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/mod.rs:327:25
[INFO] [stdout]     |
[INFO] [stdout] 327 |             Stroke::new(1.5, stroke_color),
[INFO] [stdout]     |                         ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/mod.rs:479:39
[INFO] [stdout]     |
[INFO] [stdout] 479 |                     egui::Stroke::new(1.5, Color32::from_rgba_premultiplied(255, 255, 255, 80)),
[INFO] [stdout]     |                                       ^^^ help: explicitly specify the type as `f32`: `1.5_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/mod.rs:504:35
[INFO] [stdout]     |
[INFO] [stdout] 504 |         .stroke(egui::Stroke::new(1.0, color.linear_multiply(0.3))) // Subtle border
[INFO] [stdout]     |                                   ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/mod.rs:618:25
[INFO] [stdout]     |
[INFO] [stdout] 618 |             Stroke::new(2.0, border_color),
[INFO] [stdout]     |                         ^^^ help: explicitly specify the type as `f32`: `2.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: falling back to `f32` as the trait bound `f32: From<f64>` is not satisfied
[INFO] [stdout]    --> src/ui/mod.rs:683:56
[INFO] [stdout]     |
[INFO] [stdout] 683 |         .hline(rect.x_range(), rect.top(), Stroke::new(1.0, Colors::BORDER));
[INFO] [stdout]     |                                                        ^^^ help: explicitly specify the type as `f32`: `1.0_f32`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #154024 <https://github.com/rust-lang/rust/issues/154024>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_language_matching_current` is never used
[INFO] [stdout]    --> src/config.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl Config {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn is_language_matching_current(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NONCE_SIZE` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const NONCE_SIZE: usize = 12;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_SIZE` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const TAG_SIZE: usize = 16;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CryptoError` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum CryptoError {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KemKeyPair` is never constructed
[INFO] [stdout]   --> src/crypto/mod.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct KemKeyPair {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SignKeyPair` is never constructed
[INFO] [stdout]   --> src/crypto/mod.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct SignKeyPair {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CryptoIdentity` is never constructed
[INFO] [stdout]   --> src/crypto/mod.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct CryptoIdentity {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EncryptedMessage` is never constructed
[INFO] [stdout]   --> src/crypto/mod.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct EncryptedMessage {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionKeys` is never constructed
[INFO] [stdout]   --> src/crypto/mod.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct SessionKeys {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `generate` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl KemKeyPair {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 107 |     /// Generate a new ML-KEM-768 key pair
[INFO] [stdout] 108 |     pub fn generate() -> Result<Self, CryptoError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `generate` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl SignKeyPair {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 118 |     /// Generate a new ML-DSA-65 key pair
[INFO] [stdout] 119 |     pub fn generate() -> Result<Self, CryptoError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `generate` and `public_keys` are never used
[INFO] [stdout]    --> src/crypto/mod.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl CryptoIdentity {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 129 |     /// Generate a complete cryptographic identity
[INFO] [stdout] 130 |     pub fn generate() -> Result<Self, CryptoError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn public_keys(&self) -> (Vec<u8>, Vec<u8>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kem_encapsulate` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:151:8
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub fn kem_encapsulate(recipient_public_key: &[u8]) -> Result<(Vec<u8>, [u8; 32]), CryptoError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kem_decapsulate` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn kem_decapsulate(kem_ciphertext: &[u8], secret_key: &[u8]) -> Result<[u8; 32], CryptoError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn sign(data: &[u8], secret_key: &[u8]) -> Result<Vec<u8>, CryptoError> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:195:8
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub fn verify(data: &[u8], signature: &[u8], public_key: &[u8]) -> Result<bool, CryptoError> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_nonce` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:208:8
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub fn generate_nonce() -> [u8; NONCE_SIZE] {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aes_encrypt` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:215:8
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub fn aes_encrypt(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `aes_decrypt` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | pub fn aes_decrypt(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha3_hash` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:251:8
[INFO] [stdout]     |
[INFO] [stdout] 251 | pub fn sha3_hash(data: &[u8]) -> [u8; 32] {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha3_hash_multi` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub fn sha3_hash_multi(chunks: &[&[u8]]) -> [u8; 32] {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `secure_encrypt` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:277:8
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub fn secure_encrypt(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `secure_decrypt` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn secure_decrypt(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `to_bytes` and `from_bytes` are never used
[INFO] [stdout]    --> src/crypto/mod.rs:344:12
[INFO] [stdout]     |
[INFO] [stdout] 342 | impl EncryptedMessage {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 343 |     /// Serialize the encrypted message for network transmission
[INFO] [stdout] 344 |     pub fn to_bytes(&self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn from_bytes(bytes: &[u8]) -> Result<Self, CryptoError> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SecureChannel` is never constructed
[INFO] [stdout]    --> src/crypto/mod.rs:428:12
[INFO] [stdout]     |
[INFO] [stdout] 428 | pub struct SecureChannel {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new_initiator`, `new_responder`, `next_nonce`, `encrypt_chunk`, and `decrypt_chunk` are never used
[INFO] [stdout]    --> src/crypto/mod.rs:441:12
[INFO] [stdout]     |
[INFO] [stdout] 439 | impl SecureChannel {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 440 |     /// Create a new secure channel as the initiator (sender)
[INFO] [stdout] 441 |     pub fn new_initiator(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 460 |     pub fn new_responder(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 477 |     fn next_nonce(&mut self) -> [u8; NONCE_SIZE] {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 485 |     pub fn encrypt_chunk(&mut self, plaintext: &[u8]) -> Result<Vec<u8>, CryptoError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 507 |     pub fn decrypt_chunk(&mut self, data: &[u8]) -> Result<Vec<u8>, CryptoError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISCOVERY_PORT` is never used
[INFO] [stdout]   --> src/network/mod.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const DISCOVERY_PORT: u16 = 42425;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUFFER_SIZE` is never used
[INFO] [stdout]   --> src/network/mod.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const BUFFER_SIZE: usize = 64 * 1024; // 64KB
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `transfer_addr` are never used
[INFO] [stdout]   --> src/network/mod.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl NetworkInfo {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 76 |     /// Create new network info by detecting local IP
[INFO] [stdout] 77 |     pub fn new(name: String) -> Result<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn transfer_addr(&self) -> SocketAddr {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `stop` and `local_addr` are never used
[INFO] [stdout]    --> src/network/mod.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl TcpServer {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn stop(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn local_addr(&self) -> Result<SocketAddr> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Discovery` is never constructed
[INFO] [stdout]    --> src/network/mod.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub struct Discovery {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `broadcast`, `listen`, and `stop` are never used
[INFO] [stdout]    --> src/network/mod.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl Discovery {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 270 |     /// Create a new discovery instance
[INFO] [stdout] 271 |     pub fn new() -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn broadcast(&self, info: &NetworkInfo) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     pub fn listen(&self, timeout: Duration) -> Result<Vec<(u8, String, IpAddr)>> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn stop(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMPRESSION_THREADS` is never used
[INFO] [stdout]   --> src/transfer/mod.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const COMPRESSION_THREADS: usize = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileMetadata` is never constructed
[INFO] [stdout]   --> src/transfer/mod.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct FileMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransferProgress` is never constructed
[INFO] [stdout]   --> src/transfer/mod.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct TransferProgress {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/transfer/mod.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl TransferProgress {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 44 |     pub fn new(total_bytes: u64, file_count: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn progress_percent(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn bytes_per_second(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn estimated_remaining_seconds(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn cancel(&self) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn is_cancelled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn add_transferred(&self, bytes: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn set_current_file(&self, name: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn increment_completed_files(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompressedChunk` is never constructed
[INFO] [stdout]    --> src/transfer/mod.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct CompressedChunk {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_hash` is never used
[INFO] [stdout]    --> src/transfer/mod.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub fn calculate_hash(data: &[u8]) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compress_chunks_parallel` is never used
[INFO] [stdout]    --> src/transfer/mod.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn compress_chunks_parallel(chunks: Vec<Vec<u8>>) -> Vec<CompressedChunk> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_chunks_to_file` is never used
[INFO] [stdout]    --> src/transfer/mod.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub fn write_chunks_to_file(path: &Path, chunks: &[Vec<u8>]) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileProcessor` is never constructed
[INFO] [stdout]    --> src/transfer/mod.rs:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 | pub struct FileProcessor {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `process_file`, and `cancel` are never used
[INFO] [stdout]    --> src/transfer/mod.rs:273:12
[INFO] [stdout]     |
[INFO] [stdout] 272 | impl FileProcessor {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 273 |     pub fn new(buffer_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn process_file(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     pub fn cancel(&self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkDecompressor` is never constructed
[INFO] [stdout]    --> src/transfer/mod.rs:329:12
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub struct ChunkDecompressor;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `decompress_and_write` is never used
[INFO] [stdout]    --> src/transfer/mod.rs:333:12
[INFO] [stdout]     |
[INFO] [stdout] 331 | impl ChunkDecompressor {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 332 |     /// Decompress chunks in parallel and reassemble
[INFO] [stdout] 333 |     pub fn decompress_and_write(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamingCompressor` is never constructed
[INFO] [stdout]    --> src/transfer/mod.rs:385:12
[INFO] [stdout]     |
[INFO] [stdout] 385 | pub struct StreamingCompressor {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `compress_file` are never used
[INFO] [stdout]    --> src/transfer/mod.rs:390:12
[INFO] [stdout]     |
[INFO] [stdout] 389 | impl StreamingCompressor {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 390 |     pub fn new(chunk_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 395 |     pub fn compress_file<'a>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkIterator` is never constructed
[INFO] [stdout]    --> src/transfer/mod.rs:413:8
[INFO] [stdout]     |
[INFO] [stdout] 413 | struct ChunkIterator<'a, R: Read> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchTransfer` is never constructed
[INFO] [stdout]    --> src/transfer/mod.rs:459:12
[INFO] [stdout]     |
[INFO] [stdout] 459 | pub struct BatchTransfer {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `progress`, `files`, `total_size`, and `file_count` are never used
[INFO] [stdout]    --> src/transfer/mod.rs:465:12
[INFO] [stdout]     |
[INFO] [stdout] 464 | impl BatchTransfer {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 465 |     pub fn new(files: Vec<FileEntry>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 473 |     pub fn progress(&self) -> &TransferProgress {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 477 |     pub fn files(&self) -> &[FileEntry] {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 481 |     pub fn total_size(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 485 |     pub fn file_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constants `PRIMARY_LIGHT`, `ACCENT_LIGHT`, and `INFO` are never used
[INFO] [stdout]   --> src/ui/mod.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Colors {
[INFO] [stdout]    | ----------- associated constants in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub const PRIMARY_LIGHT: Color32 = Color32::from_rgb(129, 163, 223);
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub const ACCENT_LIGHT: Color32 = Color32::from_rgb(148, 210, 245);
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub const INFO: Color32 = Color32::from_rgb(96, 165, 250); // Softer Cyan
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/ui/mod.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub trait ThemeColors {
[INFO] [stdout]     |           ----------- methods in this trait
[INFO] [stdout] 108 |     fn primary(&self) -> Color32;
[INFO] [stdout] 109 |     fn primary_light(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn accent_light(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 113 |     fn success(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 114 |     fn error(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 115 |     fn warning(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 116 |     fn info(&self) -> Color32;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn text_heading(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 121 |     fn text_body(&self) -> Color32;
[INFO] [stdout] 122 |     fn text_muted(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn shadow(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `WaitingConfirmation`, `Transferring`, `Compressing`, `Decompressing`, `Complete`, and `Failed` are never constructed
[INFO] [stdout]    --> src/ui/mod.rs:729:5
[INFO] [stdout]     |
[INFO] [stdout] 726 | pub enum TransferStatus {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 729 |     WaitingConfirmation,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 730 |     Transferring,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 731 |     Compressing,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 732 |     Decompressing,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 733 |     Complete,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 734 |     Failed,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TransferStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AppMode` is never used
[INFO] [stdout]    --> src/ui/mod.rs:783:10
[INFO] [stdout]     |
[INFO] [stdout] 783 | pub enum AppMode {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pos`, `vel`, `size`, `alpha`, `lifetime`, and `max_lifetime` are never read
[INFO] [stdout]    --> src/ui/mod.rs:790:9
[INFO] [stdout]     |
[INFO] [stdout] 789 | pub struct Particle {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 790 |     pub pos: Pos2,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 791 |     pub vel: Vec2,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 792 |     pub size: f32,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 793 |     pub alpha: f32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 794 |     pub lifetime: f32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 795 |     pub max_lifetime: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Particle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, and `is_alive` are never used
[INFO] [stdout]    --> src/ui/mod.rs:799:12
[INFO] [stdout]     |
[INFO] [stdout] 798 | impl Particle {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 799 |     pub fn new(pos: Pos2) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 810 |     pub fn update(&mut self, dt: f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 818 |     pub fn is_alive(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `particles` and `last_particle_time` are never read
[INFO] [stdout]   --> src/ui/app.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct CatShareApp {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 89 |     particles: Vec<Particle>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 90 |     last_particle_time: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `file_names` is never read
[INFO] [stdout]    --> src/ui/app.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub struct IncomingRequest {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub file_names: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IncomingRequest` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_language_matching_current` is never used
[INFO] [stdout]    --> src/config.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl Config {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn is_language_matching_current(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_SIZE` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const TAG_SIZE: usize = 16;
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `KeyGenerationFailed`, `EncapsulationFailed`, `DecapsulationFailed`, and `SigningFailed` are never constructed
[INFO] [stdout]   --> src/crypto/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum CryptoError {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 32 |     KeyGenerationFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     EncapsulationFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     DecapsulationFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     SigningFailed(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CryptoError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SessionKeys` is never constructed
[INFO] [stdout]   --> src/crypto/mod.rs:97:12
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub struct SessionKeys {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `public_keys` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl CryptoIdentity {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn public_keys(&self) -> (Vec<u8>, Vec<u8>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha3_hash_multi` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub fn sha3_hash_multi(chunks: &[&[u8]]) -> [u8; 32] {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DISCOVERY_PORT` is never used
[INFO] [stdout]   --> src/network/mod.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const DISCOVERY_PORT: u16 = 42425;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUFFER_SIZE` is never used
[INFO] [stdout]   --> src/network/mod.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const BUFFER_SIZE: usize = 64 * 1024; // 64KB
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `transfer_addr` are never used
[INFO] [stdout]   --> src/network/mod.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl NetworkInfo {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 76 |     /// Create new network info by detecting local IP
[INFO] [stdout] 77 |     pub fn new(name: String) -> Result<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn transfer_addr(&self) -> SocketAddr {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `stop` and `local_addr` are never used
[INFO] [stdout]    --> src/network/mod.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl TcpServer {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn stop(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn local_addr(&self) -> Result<SocketAddr> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Discovery` is never constructed
[INFO] [stdout]    --> src/network/mod.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub struct Discovery {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `broadcast`, `listen`, and `stop` are never used
[INFO] [stdout]    --> src/network/mod.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout] 269 | impl Discovery {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 270 |     /// Create a new discovery instance
[INFO] [stdout] 271 |     pub fn new() -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn broadcast(&self, info: &NetworkInfo) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     pub fn listen(&self, timeout: Duration) -> Result<Vec<(u8, String, IpAddr)>> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     pub fn stop(&self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMPRESSION_THREADS` is never used
[INFO] [stdout]   --> src/transfer/mod.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const COMPRESSION_THREADS: usize = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileMetadata` is never constructed
[INFO] [stdout]   --> src/transfer/mod.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct FileMetadata {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TransferProgress` is never constructed
[INFO] [stdout]   --> src/transfer/mod.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct TransferProgress {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/transfer/mod.rs:44:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl TransferProgress {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 44 |     pub fn new(total_bytes: u64, file_count: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn progress_percent(&self) -> f32 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn bytes_per_second(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn estimated_remaining_seconds(&self) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn cancel(&self) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn is_cancelled(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn add_transferred(&self, bytes: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn set_current_file(&self, name: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn increment_completed_files(&self) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_chunks_to_file` is never used
[INFO] [stdout]    --> src/transfer/mod.rs:167:8
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub fn write_chunks_to_file(path: &Path, chunks: &[Vec<u8>]) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileProcessor` is never constructed
[INFO] [stdout]    --> src/transfer/mod.rs:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 | pub struct FileProcessor {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `process_file`, and `cancel` are never used
[INFO] [stdout]    --> src/transfer/mod.rs:273:12
[INFO] [stdout]     |
[INFO] [stdout] 272 | impl FileProcessor {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 273 |     pub fn new(buffer_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn process_file(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     pub fn cancel(&self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkDecompressor` is never constructed
[INFO] [stdout]    --> src/transfer/mod.rs:329:12
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub struct ChunkDecompressor;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `decompress_and_write` is never used
[INFO] [stdout]    --> src/transfer/mod.rs:333:12
[INFO] [stdout]     |
[INFO] [stdout] 331 | impl ChunkDecompressor {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 332 |     /// Decompress chunks in parallel and reassemble
[INFO] [stdout] 333 |     pub fn decompress_and_write(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamingCompressor` is never constructed
[INFO] [stdout]    --> src/transfer/mod.rs:385:12
[INFO] [stdout]     |
[INFO] [stdout] 385 | pub struct StreamingCompressor {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `compress_file` are never used
[INFO] [stdout]    --> src/transfer/mod.rs:390:12
[INFO] [stdout]     |
[INFO] [stdout] 389 | impl StreamingCompressor {
[INFO] [stdout]     | ------------------------ associated items in this implementation
[INFO] [stdout] 390 |     pub fn new(chunk_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 395 |     pub fn compress_file<'a>(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChunkIterator` is never constructed
[INFO] [stdout]    --> src/transfer/mod.rs:413:8
[INFO] [stdout]     |
[INFO] [stdout] 413 | struct ChunkIterator<'a, R: Read> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchTransfer` is never constructed
[INFO] [stdout]    --> src/transfer/mod.rs:459:12
[INFO] [stdout]     |
[INFO] [stdout] 459 | pub struct BatchTransfer {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `progress`, `files`, `total_size`, and `file_count` are never used
[INFO] [stdout]    --> src/transfer/mod.rs:465:12
[INFO] [stdout]     |
[INFO] [stdout] 464 | impl BatchTransfer {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 465 |     pub fn new(files: Vec<FileEntry>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 473 |     pub fn progress(&self) -> &TransferProgress {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 477 |     pub fn files(&self) -> &[FileEntry] {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 481 |     pub fn total_size(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 485 |     pub fn file_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constants `PRIMARY_LIGHT`, `ACCENT_LIGHT`, and `INFO` are never used
[INFO] [stdout]   --> src/ui/mod.rs:18:15
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl Colors {
[INFO] [stdout]    | ----------- associated constants in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub const PRIMARY_LIGHT: Color32 = Color32::from_rgb(129, 163, 223);
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub const ACCENT_LIGHT: Color32 = Color32::from_rgb(148, 210, 245);
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub const INFO: Color32 = Color32::from_rgb(96, 165, 250); // Softer Cyan
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/ui/mod.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub trait ThemeColors {
[INFO] [stdout]     |           ----------- methods in this trait
[INFO] [stdout] 108 |     fn primary(&self) -> Color32;
[INFO] [stdout] 109 |     fn primary_light(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     fn accent_light(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 113 |     fn success(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 114 |     fn error(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 115 |     fn warning(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 116 |     fn info(&self) -> Color32;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn text_heading(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 121 |     fn text_body(&self) -> Color32;
[INFO] [stdout] 122 |     fn text_muted(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn shadow(&self) -> Color32;
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `WaitingConfirmation`, `Transferring`, `Compressing`, `Decompressing`, `Complete`, and `Failed` are never constructed
[INFO] [stdout]    --> src/ui/mod.rs:729:5
[INFO] [stdout]     |
[INFO] [stdout] 726 | pub enum TransferStatus {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 729 |     WaitingConfirmation,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 730 |     Transferring,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 731 |     Compressing,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 732 |     Decompressing,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 733 |     Complete,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 734 |     Failed,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TransferStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AppMode` is never used
[INFO] [stdout]    --> src/ui/mod.rs:783:10
[INFO] [stdout]     |
[INFO] [stdout] 783 | pub enum AppMode {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pos`, `vel`, `size`, `alpha`, `lifetime`, and `max_lifetime` are never read
[INFO] [stdout]    --> src/ui/mod.rs:790:9
[INFO] [stdout]     |
[INFO] [stdout] 789 | pub struct Particle {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 790 |     pub pos: Pos2,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 791 |     pub vel: Vec2,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 792 |     pub size: f32,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 793 |     pub alpha: f32,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 794 |     pub lifetime: f32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 795 |     pub max_lifetime: f32,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Particle` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `update`, and `is_alive` are never used
[INFO] [stdout]    --> src/ui/mod.rs:799:12
[INFO] [stdout]     |
[INFO] [stdout] 798 | impl Particle {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 799 |     pub fn new(pos: Pos2) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 810 |     pub fn update(&mut self, dt: f32) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 818 |     pub fn is_alive(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `particles` and `last_particle_time` are never read
[INFO] [stdout]   --> src/ui/app.rs:89:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct CatShareApp {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 89 |     particles: Vec<Particle>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 90 |     last_particle_time: f64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `file_names` is never read
[INFO] [stdout]    --> src/ui/app.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub struct IncomingRequest {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub file_names: Vec<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `IncomingRequest` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 39s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 6`
[INFO] running `Command { std: "docker" "inspect" "ef905a70fb749aa224b58c90dd7163cc0bfee859e68740ac574ad728097bb358", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ef905a70fb749aa224b58c90dd7163cc0bfee859e68740ac574ad728097bb358", kill_on_drop: false }`
[INFO] [stdout] ef905a70fb749aa224b58c90dd7163cc0bfee859e68740ac574ad728097bb358
